I had to replace some special TI characters wit PC equivalents. Below is a table of the
replacements.
-> store
<= less than or equal to
>= greater than or equal to
!= not equal to
-  minus sign for negative numbers
_  list sign

:                                        This makes the program appear in AShell.
FnOff                                    Switch off the functions that might be in Y= variables
AxesOff                                  Switch off the axes
ClrDraw                                  Clear the screen
ZStandard                                Standard zoom level
PlotsOff                                 Switch off the plots
0->Xmin                                  Set the window
94->Xmax                                 Note that X is normal, but Y starts at the top and goes
-62->Ymin                                down to -62
0->Ymax
Text(17,27,"SQUASH 2.2                   Print the text on the start screen
Horizontal -30                           Draw a horizontal line
Text(36,33,"MADE BY
Text(42,19,"THOMAS TEN CATE
Pause                                    Wait for a keypress
Lbl GO                                   Start of the instructions
ClrDraw                                  Clear the screen
Text(0,0,"BEAT THE BALL BACK UPWARDS.    Print the instructions
Text(6,0,"MOVE YOUR RACKET WITH THE
Text(12,0,"ARROW KEYS < AND >. FOR EACH
Text(18,0,"HIT YOU SCORE ONE POINT. AT
Text(24,0,"5 POINTS THE BALL FASTENS,
Text(30,0,"AT 15 POINTS THE CEILING
Text(36,0,"AND THE BALL SPEED DROP.
Horizontal -49                           Horizontal line
Text(56,0,"GOOD LUCK.
Pause                                    Wait for keypress
ClrDraw                                  Clear the screen
20->B                                    B is the racket width
(94-B)/2->R                              R is the place of the left of the racket
Line(R,-62,R+B-1,-62                     Draw the racket
10->A                                    A is the size of the steps with which the racket moves
0->S                                     S is the current score
Text(1,2,"SCORE:                         Print the score ant the hiscore
Text(1,25,S
Text(1,40,"HISCORE:
Text(1,75,_SQU2(1
8->P                                     P is the height of the ceiling
94/2->X                                  X is the horizontal position of the ball
62/2->Y                                  Y is the vertical position of the ball
X->N                                     N is the old X
Y->O                                     O is the old Y
-3->V                                    V is the vertical speed of the ball
randInt(0,1)*6-3->H                      H is the horizontal speed of the ball
Line(0,0,0,-62                           Draw the borders
Line(0,0,94,0
Line(94,0,94,-62
Line(1,-P,93,-P
Repeat Y>62                              Repeat until the ball goes below the bottom of the screen
X->N                                     Save the old X and Y
Y->O
X+H->X                                   Increase X and Y with the speed
Y+V->Y
Pt-On(X,-Y,2                             Draw the ball
Pt-Off(N,-O,2                            Immediately remove the previous ball
                                         Wrong order? No. Otherwise the ball would be invisible
                                         for too long.
                                         That's why we saved X and Y in N and O: if X and Y had to
                                         be recalculated after erasing the previous ball, it would
                                         be invisible for too long.
If (X+H<=2 and H<0) or (X+H>=92 and H>0  If the ball bounces into a wall next time...
-H->H                                    Invert the horizontal speed so it turns around
If Y+V<=P+2 and V<0                      If the ball bounces into the ceiling next time...
-V->V                                    Invert the vertical speed so it turns around
If Y+V>=61 and X>=R and X<=R+B-1 and V>0 If the ball hits the racket...
Then
-V->V                                    Invert the vertical speed so it turns around
S+1->S                                   And increase the score
Text(1,25,S                              Display the new score
If S=75                                  If it equals 75...
Goto HO                                  End the game
If S/5=int(S/5                           If it is dividable by 5...
Then
1.5H->H                                  Increase the horizontall and vertical speeds
1.5V->V
End
If S/15=int(S/15                         If it is dividable by 15...
Then
H/2->H                                   Decrease the horizontall and vertical speeds
V/2->V
Line(1,-P,93,-P,0                        Erase the previous ceiling
P+8->P                                   Lower it
Line(1,-P,93,-P                          And draw a new one
End
End
getKey->I                                Get a keypress
If I=24 and R>=1                         If left is pressed and the racket isn't already there
Then
Line(R,-62,R+B-1,-62,0                   Erase the racket
R-A->R                                   Move it
If R<1                                   If it would go out of the screen...
1->R                                     Move it back in
Line(R,-62,R+B-1,-62                     And redraw it
End
If I=26 and R+B-1<=94                    If right is pressed and the racket isn't already there
Then
Line(R,-62,R+B-1,-62,0                   Erase the racket
R+A->R                                   Move it
If R+B-1>93                              If it would go out of the screen...
94-B->R                                  Move it back in
Line(R,-62,R+B-1,-62                     And redraw it
End
End
Lbl HO                                   End of the game
If S=75                                  If 75 points were scored...
Then
ClrDraw                                  Clear the screen
Text(0,0,"HEY! THAT SHOULD               Print some text
Text(6,0,"BE IMPOSSIBLE!
Text(50,0,"BUT WELL...
Text(56,0,"CONGRATULATIONS ANYWAY!
DrawF 5sin(X)-31                         Draw the wave
Pause                                    Wait for a keypress
End
ClrDraw                                  Clear the screen
If S>_SQU2(1                             If it is a hiscore...
Then
Text(0,0,"CONGRATULATIONS!               Print some text
Text(6,0,"A NEW HISCORE!
Text(18,0,"PREVIOUS HISCORE:
Text(18,66,_SQU2(1
Text(24,0,"NEW HISCORE:
Text(24,66,S)
DrawF 5sin(X)-37                         Draw the wave
S->_SQU2(1                               Save the new hiscore
Pause                                    Wait for a keypress
Else                                     If no new hiscore was scored...
Text(0,0,"HAHAHA!                        Print some text
Text(6,0,"YOU LOST!
Text(12,0,"NOT EVEN A HISCORE!
DrawF sin(X)/1000-33                     Draw the straight line (it is actually a very flat sine
                                         to make it draw more slowly
Text(50,0,"WELL, BETTER LUCK             Print some more text
Text(56,0,"NEXT TIME, RIGHT?
Pause                                    Wait or a keypress
End
ClrDraw                                  Clear the screen
Text(0,0,"ANOTHER GAME?                  Ask for another game
Text(6,0,"PRESS ENTER FOR YES,
Text(12,0,"ANY OTHER KEY FOR NO.
Repeat I!=0                              Loop until a key is pressed
getKey->I
End
If I=105                                 If it was Enter...
Then
Goto GO                                  Start a new game
Else                                     If it wasn't...
Disp                                     Get back to the Home screen
ClrDraw                                  Clear the graph screen
AxesOn                                   Switch the axes back on
FnOn                                     Switch the functions back on
Return                                   And return to the promt or the shell
End